package cn.topevery.garden.entity.dto.event;

import cn.topevery.garden.entity.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 案件延时申请表 DTO
 *
 * @author code-generate
 * @date 2020-12-01
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "EventDelayApplyDTO", description = "案件延时申请表 DTO")
public class EventDelayApplyDTO extends BaseDTO {
    /**
     * 申请延时ID
     */
    @ApiModelProperty(value = "申请延时ID")
    private String delayId;

    /**
     * 案件ID
     */
    @ApiModelProperty(value = "案件ID")
    private String evtId;

    /**
     * 当前流程ID
     */
    @ApiModelProperty(value = "当前环节实例ID")
    @NotBlank(message = "当前环节实例不得为空")
    private String actInstId;

    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    private LocalDateTime reqDate;

    /**
     * 申请人员ID
     */
    @ApiModelProperty(value = "申请人员ID")
    private String reqUserId;

    /**
     * 申请人员部门ID
     */
    @ApiModelProperty(value = "申请人员部门ID")
    private String reqUserDepId;

    /**
     * 暂时放的冗余字段:0一般性处理，1特殊性处理，2工程性处理 ，20 自行估算时限，30 无时限
     */
    @ApiModelProperty(value = "暂时放的冗余字段:0一般性处理，1特殊性处理，2工程性处理 ，20 自行估算时限，30 无时限")
    private Integer reqType = 0;

    /**
     * 案件处理增加时间
     */
    @ApiModelProperty(value = "案件处理增加时间/s")
    @NotNull(message = "案件处理增加时间不能为空")
    private Integer reqLimit;

    /**
     * 案件原始处理时限
     */
    @ApiModelProperty(value = "案件原始处理时限")
    private Integer oldLimit;

    /**
     * 案件新处理时限
     */
    @ApiModelProperty(value = "案件新处理时限")
    private Integer newLimit;

    /**
     * 案件处理时限预留
     */
    @ApiModelProperty(value = "案件处理时限预留")
    @NotNull(message = "案件处理时限预留不得为空")
    private Integer selfDefLimit;

    /**
     * 申请原因
     */
    @ApiModelProperty(value = "申请原因")
    private String reqReason;

    /**
     * 暂时放的冗余字段:这里应该是 派发案件至申请人所在专业部门的 派遣员角色
     */
    @ApiModelProperty(value = "暂时放的冗余字段:这里应该是 派发案件至申请人所在专业部门的 派遣员角色")
    private String auditRoleId;

    /**
     * 审核日期
     */
    @ApiModelProperty(value = "审核日期")
    private LocalDateTime auditDate;

    /**
     * 审核人员ID
     */
    @ApiModelProperty(value = "审核人员ID")
    private String auditUserId;

    /**
     * 暂时放的冗余字段:与c_req_type 相同
     */
    @ApiModelProperty(value = "暂时放的冗余字段:与c_req_type 相同")
    private Integer auditType;

    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String auditOpinion;

    /**
     * 审核状态：0.未审核；1.审核通过；2.审核未通过;3.取消
     */
    @ApiModelProperty(value = "审核状态：0.未审核；1.审核通过；2.审核未通过;3.取消")
    private Integer isPass;


}
